var runtime.gcBitsArenas
35 uses
runtime (current package)
malloc.go#L489: lockInit(&gcBitsArenas.lock, lockRankGcBitsArenas)
mheap.go#L1974: var gcBitsArenas struct {
mheap.go#L2005: head := (*gcBitsArena)(atomic.Loadp(unsafe.Pointer(&gcBitsArenas.next)))
mheap.go#L2012: lock(&gcBitsArenas.lock)
mheap.go#L2016: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2017: unlock(&gcBitsArenas.lock)
mheap.go#L2026: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2029: fresh.next = gcBitsArenas.free
mheap.go#L2030: gcBitsArenas.free = fresh
mheap.go#L2031: unlock(&gcBitsArenas.lock)
mheap.go#L2043: fresh.next = gcBitsArenas.next
mheap.go#L2044: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), unsafe.Pointer(fresh))
mheap.go#L2046: unlock(&gcBitsArenas.lock)
mheap.go#L2075: lock(&gcBitsArenas.lock)
mheap.go#L2076: if gcBitsArenas.previous != nil {
mheap.go#L2077: if gcBitsArenas.free == nil {
mheap.go#L2078: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2081: last := gcBitsArenas.previous
mheap.go#L2082: for last = gcBitsArenas.previous; last.next != nil; last = last.next {
mheap.go#L2084: last.next = gcBitsArenas.free
mheap.go#L2085: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2088: gcBitsArenas.previous = gcBitsArenas.current
mheap.go#L2089: gcBitsArenas.current = gcBitsArenas.next
mheap.go#L2090: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), nil) // newMarkBits calls newArena when needed
mheap.go#L2091: unlock(&gcBitsArenas.lock)
mheap.go#L2098: if gcBitsArenas.free == nil {
mheap.go#L2099: unlock(&gcBitsArenas.lock)
mheap.go#L2104: lock(&gcBitsArenas.lock)
mheap.go#L2106: result = gcBitsArenas.free
mheap.go#L2107: gcBitsArenas.free = gcBitsArenas.free.next
The pages are generated with Golds v0.4.9. (GOOS=linux GOARCH=amd64)